/**  
 * Project Name:DRGsHosp-web  
 * File Name:AnalysisDRGsReportController.java  
 * Package Name:com.dhcc.DRGsHosp.web.controller  
 * Date:2017年11月7日下午4:07:27  
 * Copyright (c) 2017, chenzhou1025@126.com All Rights Reserved.  
 *  
*/  
  
package com.dhcc.DRGsHosp.web.controller;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.openkoala.koala.commons.InvokeResult;
import org.openkoala.security.shiro.CurrentUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.dhcc.DRGsHosp.facade.AnalysisDRGsReportFacade;
import com.dhcc.DRGsHosp.facade.SystemConfigFacade;
import com.dhcc.DRGsHosp.facade.dto.ParamMap;
import com.dhcc.DRGsHosp.infra.util.DrgsIndex;
import com.dhcc.DRGsHosp.infra.util.StringUtils;
import com.dhcc.DRGsHosp.infra.util.WordUtil;
import com.dhcc.DRGsHosp.pdfRender.utils.ResourceLoader;

/**  
 * ClassName:AnalysisDRGsReportController <br/>  
 * Function: TODO 简版新版分析报告导出-POI技术
 * Reason:   TODO ADD REASON. <br/>  
 * Date:     2017年11月7日 下午4:07:27 <br/>  
 * @author   shaozhiyuandadada  
 * @version    
 * @since    JDK 1.8
 * @see        
 */
@Controller("drgsHospWebControllerSZY171107")
@RequestMapping("/analysisDRGsReport")
public class AnalysisDRGsReportController {
	@Autowired
	private AnalysisDRGsReportFacade analysisDRGsReportFacade;
	
	@Autowired
    private  SystemConfigFacade  systemConfigFacade;
	
	Map<String,Object> finalmap= new HashMap<String,Object>();
	
	//存放分析报告图片位置
	String picRoot = new File(ResourceLoader.getPath(""))+File.separator+"config/templates/";
	//文档存放位置
	String wordRoot = "";
	//生成文档存放位置
	String writeRoot =new File(ResourceLoader.getPath("")).getParentFile().getParent() + "/tmp/";
	/**
	 * @methodname :getBenchmarkYear
	 * @Description :获取标杆年份
	 * @author:LiuHongjun
	 * @return InvokeResult
	 * @date :2016年12月30日
	 */
	@ResponseBody
	@RequestMapping(value = "/getARBenchmarkYear")
	public InvokeResult getARBenchmarkYear() {		
		List<Map<String,Object>> asyearlist = analysisDRGsReportFacade.getARBenchmarkYear();
		return InvokeResult.success(asyearlist);	
	}
	/**
	 * 
	 * @Title: checkStdID  
	 * @Description:每次进来先检测当前角色下是否进行分组配置
	 * @param @return   
	 * @return InvokeResult  
	 * @author shaozhiyuan
	 * @date 2018年5月10日  
	 * @version V3.1.0 
	 * @throws
	 */
	@ResponseBody
	@RequestMapping(value = "/checkStdID")
	public InvokeResult checkStdID() {	
		String roleCode=DrgsIndex.getRoleCode();
		String userCode=CurrentUser.getUserAccount();
	    //获取分组分案cn或bj 和标杆类型 
		String mouldeId="groupScheme_"+userCode+"_"+roleCode;
		String groupSchemeBenchType = systemConfigFacade.getSystemGroupScheme(mouldeId,userCode, roleCode);
		if(StringUtils.hasLength(groupSchemeBenchType)) {
			 return InvokeResult.success("true");
		}else {
			 return InvokeResult.success("flase");
		} 
	}
	/**
	 * 
	 * @Title: getARDrgVersion  
	 * @Description:获取系统中的分组器版本号
	 * @param @return   
	 * @return InvokeResult  
	 * @author shaozhiyuan
	 * @date 2018年5月2日  
	 * @version V3.1.0 
	 * @throws
	 */
	@ResponseBody
	@RequestMapping(value = "/getARDrgVersion")
	public InvokeResult getARDrgVersion() {		
		List<Map<String,Object>> drgVersionlist = analysisDRGsReportFacade.getARDrgVersion();
		return InvokeResult.success(drgVersionlist);	
	}
	/**
	 * 获取当前系统库中所有的临床专业
	 */
	@ResponseBody
	@RequestMapping(value = "/getARBenchSpecCode")
	public InvokeResult getARBenchSpecCode() {		
		List<Map<String,Object>> specCodelist = analysisDRGsReportFacade.getARBenchSpecCode();
		return InvokeResult.success(specCodelist);	
	}
	/**
	 * 
	 * @Description : 图片的生成
	 * @methodname :saveImg
	 * @author:ShaoZhiYuan
	 * @return InvokeResult
	 * @date :2017年2月20日
	 */
	@ResponseBody
	@RequestMapping(value = "/saveARImgTest")
	public InvokeResult saveARImgTest(@RequestParam String imgData, @RequestParam String imgName) {
		/**
		 * 生成图片部分
		 */
		try {
			String img = imgData.split(",")[1]; // 逗号分隔，逗号后面是base64图片编码
			WordUtil.GenerateImage(img,picRoot,imgName);  
		} catch (Exception e) {
			e.printStackTrace();
		}
		return InvokeResult.success();
	}
	/**
	 * 
	 * @Description : 查找生成报告所需数据
	 * @methodname :findReportInfo
	 * @author:ShaoZhiYuan
	 * @return InvokeResult
	 * @date :2017年2月20日
	 */
	@ResponseBody
	@RequestMapping(value="/findAnalysisReportInfo")
	public InvokeResult findAnalysisReportInfo(HttpServletRequest request,HttpServletResponse response){
		    Map<String,Object> dto=new ParamMap().newMap(request);
		    wordRoot=request.getSession().getServletContext().getRealPath("/")+"pages"+File.separator+"simpreport"+File.separator;
		    dto.put("picRoot", picRoot);
		    dto.put("wordRoot", wordRoot);
		    dto.put("writeRoot", writeRoot);
		    finalmap=new HashMap<>();
		    try{
	         	//返回相关的图片数据信息
	         	finalmap=analysisDRGsReportFacade.findARDRGsReport(dto);
            } catch (Exception e) {
				e.printStackTrace();
			}
		    return InvokeResult.success(finalmap);
	}
	/**
	 * Description ： 生成文档
	 * date: 2017年11月10日 上午11:14:47  
	 * @author ShaozhiYuan
	 * @version V1.0 DHC
	 */
	@ResponseBody
	@RequestMapping(value="/createAnalysisReport")
	public InvokeResult createAnalysisReport(HttpServletRequest request,HttpServletResponse response){
		    try{
	         	//返回相关的图片数据信息
	         	finalmap=analysisDRGsReportFacade.createDRGsReport();
            } catch (Exception e) {
				e.printStackTrace();
			}
		    return InvokeResult.success(finalmap);
	}
}
  
